package com.niit.session13.error;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Scanner;

public class DateParse {
//	定义两个方法，分别使用try...catch和throws处理字符串转日期时会发生的异常。
	public static void main(String[] args) {
		DateParse dateParse = new DateParse();
		dateParse.parse();
//		不管是什么异常，一般在main方法都要处理，如果不处理，程序即使发生了错误也发现不了。
		try {
			dateParse.parse1();
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}
	
	public void parse() {
		Scanner sc = new Scanner(System.in);
		String dateStr = sc.nextLine();
//		字符串转日期：
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//		把可能发生错误的代码放在try语句块中
		try {
			sdf.parse(dateStr);
//			一旦代码发生错误就会被catch语句块捕获，括号内写上要捕获的异常
			System.out.println(1/0);
		}catch (ParseException e) {
//			打印错消息
			System.out.println(e.getMessage());
//			打印堆栈信息，也就是那些红色的错误
			e.printStackTrace();
//			finally语句块中的代码，不管是否发生异常都会执行
		}catch (ArithmeticException e) {
			e.printStackTrace();
		}
		
		finally {
			sc.close();
		}
	}
//	如果有异常，不想自己处理，可以在方法定义的后面使用throws关键字把异常抛出去
	public void parse1() throws ParseException {
		Scanner sc = new Scanner(System.in);
		String dateStr = sc.nextLine();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		sdf.parse(dateStr);
	}
	

}
